package cn.iocoder.yudao.module.api.brokerage.agency;

import cn.iocoder.yudao.module.api.brokerage.agency.vo.AgencyBrokerageMoneyTrendVO;
import cn.iocoder.yudao.module.api.brokerage.agency.vo.AgencyBrokerageSummaryVO;
import cn.iocoder.yudao.module.api.member.agency.vo.AgencyUserVO;
import jakarta.annotation.Nonnull;

import java.time.LocalDateTime;
import java.util.List;

/**
 * <pre>
 * OOoO0OOoO0OOOooo0oOOOO0OOOOO0oooOO0ooOOO0Ooooo0OOOOo0ooooO0OOooo0Ooooo0OOOOO
 *  招商关系接口
 * OOoO0OOoO0OOOooo0oOOOO0OOOOO0oooOO0ooOOO0Ooooo0OOOOo0ooooO0OOooo0Ooooo0OOOOO
 * </pre>
 *
 * @author 山野羡民（1032694760@qq.com）
 * @since 2025/03/10
 */
public interface BrokerageAgencyApi {

    /**
     * 绑定推广关系
     *
     * @param shopId 店铺编号
     * @param agencyUserId 招商人员用户编号
     * @return 是否绑定
     */
    boolean bindRelation(@Nonnull Long shopId, @Nonnull Long agencyUserId);

    /**
     * 获取数据汇总
     *
     * @param userId 招商人员用户编号
     */
    @Nonnull
    AgencyBrokerageSummaryVO getSummary(Long userId);

    /**
     * 佣金趋势
     *
     * @param userId 招商人员用户编号
     * @param beginTime 开始时间
     * @param endTime 结束时间
     */
    List<AgencyBrokerageMoneyTrendVO> getBonusMoneyTrend(Long userId, LocalDateTime beginTime, LocalDateTime endTime);

    /**
     * 获取招商人员信息
     *
     * @param shopId 店铺编号
     */
    AgencyUserVO getAgencyUserByShopId(Long shopId);

}
